# @Time    : 2020/9/29 9:05
# @Author  : Del Fung
# @File    : __init__.py.py
# @Software: PyCharm

from .requester import Requester, Tokens
from .data_change import DataChange
from .api import data_depot
from .rule_verification import RuleVerification

rule = RuleVerification().rule
datas_change = DataChange().convertor_
str2list = DataChange().str2list
_REQUESTER = Requester().request_control


def request(method, url, new=False, **kwargs):
    """
    该方法提供了返回值为json ，但是不是返回回去就是只有json，本省是一个字典，有两个value
    一个为请求状态码status_code, 一个为 data 是response.json
     :param method: 请求方法，get post put 等这些，规定是大写
    :param url: 请求地址
    :param new: 是否为新页面 刷新session(可选) 默认为false
    :param kwargs:缺省参数 ，（可选） 包含
                params, headers, cookies, files,auth,timeout,
                allow_redirects, proxies,hooks, stream, verify, cert
                超过以上列出来的参数会提示 TYPEERROR
    :return: {'status_code':200,'data':{msg:'欢迎您张三，...'}}
    """
    json = kwargs.pop('json', None)
    data = kwargs.pop('data', None)
    response = _REQUESTER(method, url, new, data, json, **kwargs)
    return {'status_code': response.status_code, 'response': response}


__all__ = ['rule', 'datas_change', 'data_depot', 'request', 'Tokens', 'str2list']
